#ifndef Room_HH
#define Room_HH
#include <string>
#include <iostream>
#include <vector>
#include "Enemy.hh"
#include "Player.hh"

//A room is the base class for all room types in the game, 
//defining the  basic information about the room, the connections to it, 
//and the interface to enter the room. 
//Each specific room (e.g., battle room, shop room, forge  room, etc.) 
//inherits from the room and implements its virtual function, enterRoom. 

class Room{
    private:
        std::string name;
        std::string text;
        std::vector<Item> items;
        std::vector<Enemy> enemies;
        bool explored = false;
    public:
        std::vector<Room*> connectRooms;
        Room(std::string name,std::string text);
        std::string getName()const;
        void descriptionText();
        void connections(Room* otherRoom);
        void showItems(std::vector<Item> items);
        void showEnemies(std::vector<Enemy> enemies);
        virtual void enterRoom(Player& player) = 0 ;
        virtual ~Room() = default;
};
#endif